Q: éÑÇÃÉAÉvÉåÉbÉgÇÕÅAÉfÅ[É^Çï€éùÇ∑ÇÈÇΩÇflÇ…ÉTÅ[ÉoÅ[ë§Ç≈ÉNÉâÉCÉAÉìÉgÇà HttpSession ÇégǡǃÅAJSP/servlet Ç÷Çà URLConnection ê⁄ë±ÇäJÇ´ÉfÅ[É^ÇÃéÛÇØìnǵÇǵNjÇ∑ÅBǵǩǵǪÇÃå„LJÅAÉAÉvÉåÉbÉgÇÕê⁄ë±ÇçsǧÇΩÇ—Ç…ÉTÅ[ÉoÅ[ÇΔêVǵǢÉZÉbÉVÉáÉìÇê∂ê¨ÇµÅAÉfÅ[É^Ç™é∏ÇÌÇÍÇ‹Ç∑ÅBDZÇÃÇÊǧǻDZÇΔÇÕÅAWindows Ç‹ÇΩÇÕ Mac OS 9 Ç≈ÇÕãNDZÇËÇ‹ÇπÇÒÅBâΩÇ™ñ‚ëËÇ»ÇÃÇ≈ǵÇÂǧǩÅHÉäÉXÉg 1 ÇÕä»íPÇ» JSP ÇÃó·Çé¶ÇµÇ‹Ç∑ÅB
A: Mac OS X è„Ç≈ÇÕ Java ÉAÉvÉåÉbÉgÇÕÅA Java ÉAÉvÉåÉbÉgÇ™ñÑÇflçûÇ‹ÇÍǃǢÇÈÉuÉâÉEÉUÇΔÇÕÉNÉbÉLÅ[Çã§óLǵNjÇπÇÒÅBDZÇÃÇΩÇflÅAÉAÉvÉåÉbÉgÇΔÉuÉâÉEÉUÇÃÉZÉbÉVÉáÉìÇÕï Ç…Ç»ÇËÇ‹Ç∑ÅBDZÇÍÇÕÅAWeb ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ÇÊǡǃÇÕñ‚ëËÇ…Ç»ÇÈèÍçáǙdžÇËÇ‹Ç∑ÅB
âåàçÙÇÕÅAÇΩÇΔǶnj HttpServletResponse.encodeURL() ÉÅÉ\ÉbÉhÇégópǵǃÅAÉAÉvÉåÉbÉgÇñÑÇflçûÇÒÇ≈Ç¢ÇÈÉuÉâÉEÉUÇ…ÉRÉìÉeÉìÉcÇìnÇ∑ÇΔÇ´Ç… URL Ç servlet/JSP/ ǻǫÇégǡǃèëÇ´ä∑ǶÇÈDZÇΔÇ≈Ç∑ÅB
<%
HttpSession session1 = request.getSession(true);
%>
<HTML>
<BODY>
Browser's Session is <%= session1.getId() %><BR>
<%-- APPLET É^ÉOÇèëÇ´èoÇ∑ --%>
<APPLET CODEBASE="." CODE="TestApplet.class" WIDTH="500" HEIGHT="500">
<PARAM NAME="appName" VALUE="TestApplet">
<%-- ÉZÉbÉVÉáÉìÇÉGÉìÉRÅ[ÉhǵǃñÑÇflçûÇÒÇæí êMóp URL ÇëóêMÇ∑ÇÈ --%>
<PARAM NAME="serverURL" VALUE="<%= response.encodeURL("serverIO.jsp") %>">
</APPLET>
</BODY>
</HTML>
|
ÉäÉXÉg 1Å@ÉZÉbÉVÉáÉìÇÉGÉìÉRÅ[ÉhǵǃñÑÇflçûÇÒÇæ URL ÇÉAÉvÉåÉbÉgÇ…ëóêM
|
è„ãLÇÃÉRÅ[ÉhÇÕÅAÉuÉâÉEÉUÇÃ
ÉTÅ[ÉoÇΔÇÃÉZÉbÉVÉáÉìÇÅAÉAÉvÉåÉbÉgÇ™ÉTÅ[ÉoÇΔÇÃí êMÇ…ïKóvÇΔÇ∑ÇÈ URL Ç…ÉGÉìÉRÅ[ÉhǵǃñÑÇflçûǛNjÇ∑ÅB
ǪÇÃå„ÅAÉAÉvÉåÉbÉgÇÕÅAÉGÉìÉRÅ[ÉhÇ≥ÇÍÇΩ URL
ÇÉpÉâÉÅÅ[É^ÇΔǵǃéÛÇØéÊÇËÅAǪÇÍÇégǡǃêVǵǢÅAÉZÉbÉVÉáÉìÇäÓDžǵÇΩ
URLConnection Çê∂ê¨Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÉäÉXÉg 2 ÇÕÅAǪÇÃÇΔÇ´ÇÃÉRÅ[ÉhÇé¶ÇµÇ‹Ç∑ÅB
String ioData = "gkj3609&fj2*^bl#d?em";
String param = "redirect";
// ÉTÅ[ÉoÇ™íÒãüÇ∑ÇÈÉZÉbÉVÉáÉìèÓïÒÇégǡǃ ÉAÉvÉåÉbÉgÇà serverURL ÇΔǢǧÉpÉâÉÅÅ[É^ÇéÊìæÇ∑ÇÈ
StringBuffer serverURL = new StringBuffer(getParameter("serverURL"));
// ÉTÅ[Éoí êMópÇà URL ÉpÉâÉÅÅ[É^Çí«â¡Ç∑ÇÈ
serverURL.append("?IOdata=").append(URLEncoder.encode(ioData));
serverURL.append("¶m=").append(URLEncoder.encode(param));
// ç≈èIìIÇ» URL ÇçÏê¨Çµê⁄ë±Ç∑ÇÈ
URL toGo = new URL(getDocumentBase(), serverURL.toString());
URLConnection conn = toGo.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
do {
console.append(br.readLine());
console.append("\n");
} while (br.readLine() != null);
|
ÉäÉXÉg 2Å@èëÇ´ä∑ǶÇÁÇÍÇΩ URL Ç…äÓÇ√Ǣǃ
URLConnection Çç\íz
|
ÉZÉbÉVÉáÉìÇÕÅAWeb ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ÷ÇÃÉGÉìÉgÉäÅEÉ|ÉCÉìÉgÇ©ÇÁénÇ‹ÇÈÅAURL Ç…ÉGÉìÉRÅ[ÉhǵǃñÑÇflçûÇfiDZÇΔÇ™èdóvÇ≈Ç∑ÅBǬNjÇËÅAÉAÉvÉåÉbÉgÇ™ÅAAppStart.jsp ÇΔǢǧ JSP ÉyÅ[ÉWÇ…ä‹Ç‹ÇÍǃǢÇÈèÍçáÅAAppStart.jsp Ç÷ÇÃÇ∑Ç◊ǃÇÃÉäÉìÉNÇÅAè„ãLÇÃåƒÇ—èoǵÇégǡǃÅAURL Ç…ÉGÉìÉRÅ[ÉhǵǃñÑÇflçûÇ‹Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBÉZÉbÉVÉáÉìÇ™ URL Ç…ÉGÉìÉRÅ[ÉhǵǃñÑÇflçûÇ‹ÇÍǃǢǻǢèÛë‘Ç≈ÅAÉÜÅ[ÉUÇ™ÅAäJénÉyÅ[ÉWÇ…à⁄ìÆÇµÇΩèÍçáÅAÉAÉvÉåÉbÉgÇ™í êMÇäJénǵÇΩå„Ç…ÉyÅ[ÉWÇÉäÉtÉåÉbÉVÉÖÇ∑ÇÈÇΔÅAÉZÉbÉVÉáÉìèÓïÒÇ™é∏ÇÌÇÍÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅB
DZÇÃâÒîï˚ñ@Çê≥ǵÇ≠ìÆçÏÇ≥ÇπÇÈÇ…ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÉTÅ[ÉoÇ≈ÇÃÉNÉbÉLÅ[ÇÃåüèoÇñ≥å¯Ç…Ç∑ÇÈïKóvǙdžÇÈÇ≈ǵÇÂǧÅBÇ»Ç∫Ç»ÇÁÅAÇ«Çà response.encodeURL() Ç÷ÇÃåƒÇ—èoǵDžǮǢǃLJÅAÇŸÇΔÇÒÇ«Çà J2EE ÉAÉvÉäÉPÅ[ÉVÉáÉìÉTÅ[ÉoÇÕÅAÉNÉâÉCÉAÉìÉgë§Ç…ÉZÉbÉVÉáÉìÇï\Ç∑ÉAÉNÉeÉBÉuÇ»ÉNÉbÉLÅ[ǙǻǢèÍçáÇ…ÇÃÇ›ÅAURL ÇÃÉGÉìÉRÅ[ÉhÇçsǧǩÇÁÇ≈Ç∑ÅBǵÇΩǙǡǃÅAÉuÉâÉEÉUÇ™ÉZÉbÉVÉáÉìÇÃÉNÉbÉLÅ[ÇçÏê¨ÇµÇΩèÍçáÅAÉTÅ[ÉoÇÕÅAïKóvǙǻǢÇΔîªífǵ URL Ç…ÉZÉbÉVÉáÉìÇÉGÉìÉRÅ[ÉhǵñÑÇflçûÇfiÇÃÇé~ÇflÇ‹Ç∑ÅBǵÇΩǙǡǃǪÇÃâåàçÙÇÕÅAURL Ç™ïKÇ∏ÉGÉìÉRÅ[ÉhÇ≥ÇÍÇÈÇÊǧDžÅAÉTÅ[ÉoÇÃÉNÉbÉLÅ[Çñ≥å¯Ç…Ç∑ÇÈDZÇΔÇ≈Ç∑ÅBÉNÉbÉLÅ[ÇégópǵǃǢÇΩÉXÉeÅ[ÉgÉtÉãÇ» Web ÉAÉvÉäÉPÅ[ÉVÉáÉìǙDZÇÃï˚ñ@Ç…ÇÊÇÈâeãøÇéÛÇØÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÅBURL ÇÃèëÇ´ä∑ǶÇÕÉNÉâÉCÉAÉìÉgÇÃÉNÉbÉLÅ[ÇΔNjǡÇΩÇ≠ìØÇ∂ÇÊǧDžã@î\ǵâië±ìIÇ≈Ç∑ÅB
[2002 îN 5 åé 14 ì˙]
|